/**
 * Windows环境修复验证脚本
 */
const windowsBuildManager = require('./src/utils/windowsBuildManager');
const dockerBuildManager = require('./src/utils/dockerBuildManager');

async function testWindowsEnvironment() {
  console.log('🧪 开始Windows环境测试...\n');

  // 1. 环境检测测试
  console.log('1️⃣ 环境检测测试:');
  try {
    const envStatus = await windowsBuildManager.checkWindowsEnvironment();
    console.log('✅ 环境状态:', JSON.stringify(envStatus, null, 2));
  } catch (error) {
    console.log('❌ 环境检测失败:', error.message);
  }

  // 2. Docker可用性测试
  console.log('\n2️⃣ Docker可用性测试:');
  try {
    const dockerAvailable = await dockerBuildManager.checkDockerAvailable();
    console.log(`✅ Docker状态: ${dockerAvailable ? '可用' : '不可用'}`);
  } catch (error) {
    console.log('❌ Docker检测失败:', error.message);
  }

  // 3. 构建策略选择测试
  console.log('\n3️⃣ 构建策略选择测试:');
  try {
    const strategy = await windowsBuildManager.selectBuildStrategy('./temp/test-project', 'node14');
    console.log('✅ 推荐策略:', JSON.stringify(strategy, null, 2));
  } catch (error) {
    console.log('❌ 策略选择失败:', error.message);
  }

  // 4. 诊断和建议测试
  console.log('\n4️⃣ 诊断和建议测试:');
  try {
    const diagnosis = await windowsBuildManager.diagnoseAndSuggest();
    console.log('✅ 诊断结果:');
    console.log(diagnosis.suggestions);
  } catch (error) {
    console.log('❌ 诊断失败:', error.message);
  }

  console.log('\n🎉 测试完成!');
}

// 运行测试
if (require.main === module) {
  testWindowsEnvironment().catch(console.error);
}

module.exports = { testWindowsEnvironment };
